// pages/courseDetail/index.js
const app = getApp();// 云：add this before every page //
const HTTP = require('../../utils/http');
const API = require('../../utils/api');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    safeBottom: app.globalData.safeBottom, // 云：add this before every page //
    safeTop: app.globalData.safeTop,

    detailData: {},
    stared: false,
    liked: false,
    courseId: '',
  },

  // 分享
  tapShare(){
    console.log("点击页面分享按钮!")
    // wx.showShareMenu()
    wx.showModal({
      title: '分享课程',
      content: '请点击小程序右上角胶囊分享课程!',
      showCancel: false,
      confirmText: '我知道了'
    })
  },

  // 点赞
  tapLike(){
    if(this.data.liked){
      let that=this
      wx.showModal({
        title: '取消点赞',
        content: '您确定需要取消点赞吗？',
        success (res) {
          if (res.confirm) {
            console.log('用户点击确定取消点赞')
            that.likeTrueOrFalse(
              {
                id: that.data.courseId,
                liked: false
              }
            )
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
    else{
      this.likeTrueOrFalse(
        {
          id: this.data.courseId,
          liked: true
        }
      )
    }
  },

  // 收藏
  tapStar(){
    if(this.data.stared){
      let that=this
      wx.showModal({
        title: '取消收藏',
        content: '您确定需要取消收藏吗？',
        success (res) {
          if (res.confirm) {
            console.log('用户点击确定取消收藏')
            that.starTrueOrFalse(
              {
                id: that.data.courseId,
                stared: false
              }
            )
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
    else{
      this.starTrueOrFalse(
        {
          id: this.data.courseId,
          stared: true
        }
      )
    } 
  },

  // 确定或者取消点赞
  likeTrueOrFalse(data){
    wx.request({
      url: API.LikeCourse,
      header:{
        "Authorization": 'Bearer '+wx.getStorageSync('accessTokenData').accessToken
      },
      method: "put",
      data:data,
      success: (res) => {
        console.log("调用点赞接口返回的信息是：",res)
        if(data.liked){
          if(res.data.code===0){
            wx.showToast({
              title: '点赞成功',
            })
            this.setData({
              liked: true
            })
          }
          else{
            wx.showToast({
              title: '点赞出错',
            })
          }
        }
        else{
          if(res.data.code===0){
            wx.showToast({
              title: '取消点赞成功',
            })
            this.setData({
              liked: false
            })
          }
          else{
            wx.showToast({
              title: '取消点赞出错',
            })
          }
        }
      },
      fail: (err) => {
        wx.showModal({
          title: '提示',
          content: JSON.stringify(err),
        })
        console.log(err);
      },
      complete:()=>{
        
      }
    })
  },

  // 确定或者取消收藏
  starTrueOrFalse(data){
    wx.request({
      url: API.StarCourse,
      header:{
        "Authorization": 'Bearer ' + wx.getStorageSync('accessTokenData').accessToken
      },
      method: "put",
      data:data,
      success: (res) => {
        console.log("调用收藏接口返回的信息是：",res)
        if(data.stared){
          if(res.data.code===0){
            wx.showToast({
              title: '收藏成功',
            })
            this.setData({
              stared: true
            })
          }
          else{
            wx.showToast({
              title: '收藏出错',
            })
          } 
        }
        else{
          if(res.data.code===0){
            wx.showToast({
              title: '取消收藏成功',
            })
            this.setData({
              stared: false
            })
          }
          else{
            wx.showToast({
              title: '取消收藏出错',
            })
          }
        }
      },
      fail: (err) => {
        wx.showModal({
          title: '提示',
          content: JSON.stringify(err),
        })
        console.log(err);
      },
      complete:()=>{
        
      }
    })
  },

  /**
   * 跳转到分步学习页面
   */
  jumpStep() {
    if(this.data.detailData&&this.data.detailData.items){
      let stepFlag=false;
      for(let i=0;i<this.data.detailData.items.length;i++){
        if(this.data.detailData.items[i].type===1){
          stepFlag=true;
          break
        }
      }
      if(stepFlag){
        wx.navigateTo({
          url: `/pages/stepStudy/index?id=${this.data.courseId}`,
        });
        return
      }      
    }
    wx.showToast({
      title: '暂无分步学习',
      icon:'error'
    })
      
  },

  /**
   * 跳转到视频学习
   */
  jumpVideo() {
    
    if(this.data.detailData&&this.data.detailData.items){
      let videoFlag=false;
      for(let i=0;i<this.data.detailData.items.length;i++){
        if(this.data.detailData.items[i].type===2){
          videoFlag=true;
          break
        }
      }
      if(videoFlag){
        wx.navigateTo({
          url: `/pages/videoStudy/index?id=${this.data.courseId}`,
        });
        return
      }      
    }
    wx.showToast({
      title: '暂无视频',
      icon:'error'
    })
    
  },

  // 获取课程信息
  getCourseData(courseId){
    wx.request({
      url: API.GetCourseDetail,
      header:{
        "Authorization": 'Bearer ' + wx.getStorageSync('accessTokenData').accessToken
      },
      method: "get",
      data: {
        id: courseId
      },
      success: (res) => {
        console.log("调用根据courseId获取课程接口返回的信息是：",res)
        this.setData({
          detailData: res.data.data,
          stared: res.data.data.stared,
          liked: res.data.data.liked,
        })
      },
      fail: (err) => {
        wx.showModal({
          title: '提示',
          content: JSON.stringify(err),
        })
        console.log(err);
      },
      complete:()=>{
        
      }
    })
  },  

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log("课程详情页面的course id是：", options.id)
    this.setData({
      courseId: options.id
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 获取课程信息
    this.getCourseData(this.data.courseId)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
});
